Identity Management in Internet of Things with Blockchain

227

Fig. 7 The verifiable

credentials standard logic

sends one and only one statement to the verifier [36]. While non-interactive ZKPs

demand cryptography and number theory analysis in order to be fully explained,

there is a simple example that is able to demonstrate their basic functionality.

Let’s suppose that the prover and the verifier are two mathematicians (A and B,

respectively) which know each other pretty well enjoying discussions related to math.

They agreed on a common secret key for their communication. Now let’s suppose

that Mathematician A (Prover) wants to travel around the world while at the same

time he develops a mathematical theorem (Fig. 9).

He wants to tell the Mathematician B (Verifier) and convince him that he has found

the solution to his theorem but does not want to reveal the theorem nor its solution

over mail. Moreover, because Mathematician A is traveling around the world, he

does not have a stable address in order to be able to receive a mail back from his

friend, meaning that their communication is one-way. How will Mathematician B be

sure that this mail came from his friend and that he is telling the truth?

Mathematician A will use the secret key which they had previously agreed upon,

in order to prove to his friend that it is him that is sending the mail, while at the

same time he is telling the truth. The secret key could for example be a mathematical

function with two parameters. In the mail, different parameters could be used every

time but the correct pair and order of the parameters which satisfy their secret function

can persuade Mathematician B whether it is his friend that the mail came from or

not.

Figure 7 illustrates the one-way interaction between the prover and verifier, while

their thoughts reveal the purpose of the non-interactive ZKPs usage.

4.1.3

ZKP Identity Adoptions in Blockchain

ZKPs are used in many ways in blockchain and not only for IAM. The very well-

known Proof-of-Work (PoW) consensus used by the Bitcoin blockchain and the

Ethereum blockchain platforms is based on the ZKP logic, with the proof being a

single hash word which satisfies some requirements (among others, starting with

an agreed by all peers, number of zeros). Thus, while there is no back-and-forth

communication between the blockchain network nodes, all peers can verify whether